package gbench.appdemo.mall.erp.components;

import gbench.common.tree.LittleTree.IRecord;

/**
 * 商品拥有 交换价值 和 使用价值。使用价值 对应 商品的 实物属性，而 交换价值 对应 商品的 财物属性 或者说 金融属性。
 * 在交易 或者 说 流通中 我们关注的是 交换价值 即 金融属性，而 非 使用价值。所以 商业 环境中所 说的价值 除了特别说明<br>
 * 都是 交换价值。<br>
 * 
 * 交易 是 在交易主体（卖方，买方） 之间 通过 在 交换价值 上的一致认同 来 重新分配 商品的过程。<br>
 * 即 卖方用 其支付品（一般为货币） 表示 交换价值 获得 卖方 商品表示的交换价值，这样 尽管在 交换价值上 等价 但 却在
 * 使用价值上 发生了 相互易主 即 卖方获得 商品 而 卖方 获得 支付品。 进而 实现了 重分配商品。
 * 
 * 传统交易 有一个缺点， 交易是一个时点概念，支付品商品的互换是在 一瞬之间给予完成的，也就是 交易双方必须 <br>
 * 同时 准备好 支付品和商品，然后一手交钱一手交货, 这对于 结构简单 ，数量 较少的 日常商品 的确不是问题，但是 对于大宗 货品 <br>
 * 或是 结构复杂 的产品（商品）就有些不可行了，比如 我支付8千万，够买1万吨玉米。把 1万吨玉米 和 8000万人民币 进行一手交钱 <br>
 * 一手交货就 很不现实，首先 场所就很是问题。 若是选择在 玉米粮仓，我们需要把 一车车的 货币 拉倒粮仓，要是 选择在 银行 你就需要 <br>
 * 把 粮食拉到银行 ，可以 肯定的是清点就很是问题， 无论在 粮仓里清点钞票 还是 在 银行中清点玉米 都不是一个 令人愉快的 工作。 <br>
 * 所以 把 交易只局限于一个 时点 极大的限制了 交易的 能力。因此 就必须 把 交易 扩展到 一个时段之中。于是 使用价值（物品）和 <br>
 * 交换价值（货币）的交易就可分开了，比如 你可以先把 粮食交给我，然后 我再把 货币交易给你。或是 我先把货款 支付给你 你再把粮食 <br>
 * 支付给我。于是 一种因 使用价值与交换价值的分类，而仅在交易过程出现的关系被构造出来了，债权债务关系，这是一种半个交易的交易的关系。
 * 即 一方业已支付给另一方，但他却并未从对方手中获得对方 做出的 货品 转让，也就是交易 只完成了一半，于是 我们就把 完成 商品转让的 一方
 * 叫做 债权方 意思是说 拥有命令对方 支付 相应价值的 权利， 未完成 商品转让的一方 叫做 债务方，意思是 背负一项任务或是支付任务<br>
 * 将相应额价值、货品 交付给 另一方（债权方）。
 * 
 * 但是 这种 半个交易 的说法实在 让人觉得 有点不舒服，于是 人们 就 给他做了一个 补充，即 对于 已经支付的一方（债权方） 来说，<br>
 * 未曾支付（债务方）的 一方也被视为做了一种支付，即 信用支付，也就是说 它承诺自己，一段时间以后会给与支付的，或者说 债务方使用了 <br>
 * 债权方 专门为自己 创立的一种 虚拟货币,信用货币（这种虚拟货币需要一段时间后用真实货币来给与置换） 来给与支付。我们 把这种 债权方 专门 <br>
 * 为 债务方 发行 虚拟货币 叫做 信用。可以 这样认为 债务方 就好像 在 债权方 所 管理的一个信用银行 开了一个 账户，当交易发生时，即 <br>
 * 构造出 本债权债务关系时，债权方 使用了 自己 在其（信用账户) 来给予支付。当然这种 信用账户 是一种 临时结算账户，必然要在未来的 <br>
 * 一段时间中给予进行实际货币的支付。<br>
 * 
 * 其实 信用（货币）概念 的产生，是可以 突破 单个商品交易的，即 他可以跨越 交易 重新 组织 债权债务关系，在 一笔交易中 你是债务方我是债权方
 * 在第二笔交易中我是债权方你又是债务方，...., 由于 我们之间有发生着 多个 商品交易，于是 我们 势必分别为对方 进行授信和被授信（建立信用账户）
 * 于是 这些交易 就可以 重新的 给与 组合起来 形成一个 进行 金融交易（即没有使用价值即商品交易发生的交易），仅仅 结算 债权债务关系的 交易。
 * 一方需要给另一方 支付 多少使用价值。这就是 信用所 创造出的 虚拟经济的 根本原理。 
 * 
 * 
 * 所谓信用就是 商品提供方 对 商品采购方的 支付能力的 评估 <br>
 * 即 在本次交易中 采购方 是否能够 提供 或 是给予 倾注 足够的 价值 付出&成本 <br.
 * 来获取采购的商品。 <br>
 * 需要注意： <br>
 * 1）信用是针对于 交易而言的，即 是 债权方（商品提供方），对 债务方（商品接收方）的 偿还能力的评估 ,<br>
 * 本质上 与 债务方的 真实 财务实力 没有必然即关系，即 假若 债务方 对交易 毫无专心/重视/坦诚观念 比如 <br>
 * 以 一种 欺诈 或是 应付 的 心态 来 获取 商品，那么 尽管他 有足够的资金储备，但是 并未 在 本次交易中
 * 配置、留有 足够的 价值支付能力 来 结算交易 因此 他的 信用值（即用于偿还计算债务的能力)还是不足的。
 * 2）信用 是一种 行为能力，即债务偿还能力的评估，所谓债务是 对 在交易中所 因获取的商品而 负有的 <br>
 * 与该商品在价值量有相应对应的 其他价值的 支付义务。具体 价值量 是什么，需要采用何种实物进行表达<br>
 * 则是需要通过交易合约（联合约定）来给予确定。<br>
 * 
 * @author gbench
 *
 * @param <T> 信用值 即 体现价值的具体实物。
 */
public interface ICredit<T> {
    
    /**
     * 信用值
     * @return 价值量大小。
     */
    public Double getValue();
    
    /**
     * 价值物
     * @return 信用对象
     */
    public T getUnderlying();
    
    /**
     * underlying 的比率 <br>
     * 用U来衡量T 的价值量 <br>
     * this.underlying / t.underlying 的 比率 <br>
     * 
     * @param credit 信用比率
     * @return this/t
     */
    public <U> Double ratioOf(final ICredit<U> credit);

    /**
     * 获取属性值
     * @return
     */
    public IRecord getAtrributes();
    
}